<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>字符集</title>
  <script>
    window.onload = function () {
      // 2. 字符集
      var reg = /^[abc]+$/              // [abc] 中括号中的字符出现一次或多次
      console.log(reg.test('a'))        // true
      console.log(reg.test('ab'))       // true
      console.log(reg.test('acbbb'))    // true
      console.log(reg.test('acbbbs'))   // false
      console.log('--------------------')
      var reg = /^[a-z]+$/              // [a-z] 之间的所有字符出现一次或者多次
      console.log(reg.test('aaabdsger'))        // true
      console.log(reg.test('vege112'))       // false
      console.log(reg.test('acbbbAASD'))    // false
      console.log('--------------------')
      var reg = /^[A-Z]+$/              // [A-Z] 之间的所有字符出现一次或者多次
      console.log(reg.test('aaabdsger'))        // false
      console.log(reg.test('LFPWPWP112'))       // false
      console.log(reg.test('ASDJSHGE'))    // true
      console.log('--------------------')
      var reg = /^[^0-9]+$/              // [0-9] 之间的所有字符出现一次或者多次
      console.log(reg.test('12122'))        // false
      console.log(reg.test('LFPWPWP112'))       // false
      console.log(reg.test('kiufeoelw'))       // true
      

      /**
       * 预定义字符集
       * \d: 等价于[0-9]    数字字符集
       * \D: 等价于[^0-9]   非数字字符集
       * \s: 代表所有的空白字符集的集合（空格、制表符、回车）
       * \S: 代表了所有的非空白字符集的集合
       * \w: 代表了标识符字符的集合 等价于 [0-9a-zA-Z_]
       * \W: 代表标识符字符的集合取反
       */
      console.log('--------------------')
      var reg = /^\s*/
      console.log(reg.test(`               
              `))
      
      // 选择符
      console.log('--------------------')
      var reg = /^I love (js|css|html)$/
      console.log(reg.test('I love js'))          // true
      console.log(reg.test('I love html'))        // true
      console.log(reg.test('I love netcore'))     // false
      console.log(reg.test('I love sql'))         // false

      /**
       * 转义字符
       * \?: 文号本身
       * \/: / 本身
       * \\: \ 本身
       * \*: * 本身
       * \+: + 本身
       * \t: \n\r
       * \.: . 本身
       */

       /**
        * 特殊符号
        * . : 任意字符（不能匹配\n\r）
        * 中文字符的区间: [\u4e00-\u9fa5]（十六进制0x4e00-0x9fa5）
        */
    }
  </script>
</head>

<body>

</body>

</html>